Skip to content

Add reusable provision-meos composite action#42

Merged
estebanzimanyi merged 1 commit into
MobilityDB:masterfrom
estebanzimanyi:feat/provision-meos-action
Jul 10, 2026
Merged

Add reusable provision-meos composite action#42
estebanzimanyi merged 1 commit into
MobilityDB:masterfrom
estebanzimanyi:feat/provision-meos-action

Conversation

@estebanzimanyi

Copy link
Copy Markdown
Member

provision-meos is a reusable composite action that derives the language-neutral MEOS artifacts from a single MobilityDB commit. It is the shared keystone every binding (Java today, MEOS.js / PyMEOS / GoMEOS later) uses to obtain those artifacts from one pinned commit with a single step.

From one mobilitydb-ref the action:

  • generates the language-neutral catalog output/meos-idl.json via run.py (parses the pinned MEOS headers with libclang; points MDB_SRC_ROOT at the same checkout so the @sqlfn/@ingroup maps stay reproducibly equivalent to that commit), exposed as the catalog-path output;
  • optionally (build-libmeos: "true") builds and installs libmeos with all families (-DALL=ON by default), exposed as the libmeos-prefix output. This path mirrors the green all-families recipe: it purges the runner's preinstalled PostgreSQL and uses apt.postgresql.org PG17 so the vendored pgPointCloud build resolves clang-19.

Because the whole MEOS-API repository is checked out at the action path when consumed cross-repo, run.py, requirements.txt, parser/ and meta/ all resolve at $GITHUB_ACTION_PATH/../../.. for both the local dogfood here and cross-repo use.

The tests workflow now consumes the action instead of the inline catalog steps:

  • Regenerate catalog + pytest provisions the catalog from MobilityDB master through the action and runs the pytest suite against it — the same catalog-correctness signal as before, now produced by the shared action.
  • Build libmeos (all families) exercises the optional libmeos path and asserts libmeos.so is installed, validating the whole action before any binding depends on it.

run.py, requirements.txt and the tests are unchanged.

provision-meos derives the language-neutral MEOS artifacts from a single
MobilityDB commit: it generates meos-idl.json via run.py and can also build
and install libmeos with all families. The pytest workflow consumes the
action, so any binding can obtain the catalog (and optionally libmeos) from
one pinned commit with a single step.
@estebanzimanyi estebanzimanyi merged commit 920dc27 into MobilityDB:master Jul 10, 2026
2 checks passed
@estebanzimanyi estebanzimanyi deleted the feat/provision-meos-action branch July 10, 2026 14:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant